JavaScript中对象属性通过点(.)和方括号([])取值的不同之处
1、点操作符: 静态的。右侧必须是一个以属性名称命名的简单标识符。属性名用一个标识符来表示。标识符必须直接出现在js程序中,它们不是数据类型,因此程序无法修改它们。
2、中括号操作符: 动态的。方括号里必须是一个计算结果为字符串的表达式,属性名通过字符串表示。字符串是js的数据类型,在程序运行时可以修改和创建它们。
主要有以下区别:
1、[]中括号法:可以用变量作为属性名或访问,而点语法不可以;
var obj = {};
obj.name = '张三';
var myName = 'name';
console.log(obj.myName);//undefined,访问不到对应的属性
console.log(obj[myName]);//张三
var person = {
name:'gogo'
};
console.log(person["name"]);//gogo
console.log(person.name); //gogo
// 优点:1,可以通过变量来访问属性
var propertyName = 'name';
console.log(person[propertyName]); //gogo
var propertyName2 = 'name2';
console.log(person[propertyName2]); //undefined
2、[]中括号法:可以用数字作为属性名,而点语法不可以;
var obj1={};
// obj1.1=1;//Unexpected number
obj1[2]=2;
// console.log(obj1.1)
console.log(obj1[2]);//2
// console.log(obj1.2)
console.log(obj1)//{2: 2}
3、 []中括号法:可以动态访问的属性名,可以在程序运行时创建和修改属性,点操作符就不行;
// ( 即 []--可以动态设置和获取)
var customer={};
var addr=['北京','上海','广州','深圳'];
for(i=0;i |